JSP 태그

✒️ 2025-06-21 23:41 내용 수정


주석용 태그

<%-- JSP 주석 : 소스코드에서 보이지 않음 --%>
<!-- HTML 주석 : 소스코드에서 보임 -->

디렉티브 태그

<%@ 디렉티브태그 %>
태그 설명
page JSP 페이지에 대한 정보를 설정
include JSP 페이지의 특정 영역에 다른 문서를 포함
taglib JSP 페이지에서 사용할 태그 라이브러리 설정

1. page 태그

<%@ page 속성1="값1" 속성2="값2" %>
속성 작성 형태 기본값 설명
language language="언어" Java 현재 JSP 페이지가 사용할 프로그래밍 언어 설정
contentType contentType="컨텐츠유형" text/html 현재 JSP 페이지가 생성할 문서의 컨텐츠 유형 설정
text/html, text/xml, text/plain
pageEncoding pageEncoding="인코딩" ISO-8859-1 현재 JSP 페이지의 문자 인코딩 설정
contentType 속성의 문자열 세트로도 설정 가능
import import="자바클래스" 현재 JSP 페이지에서 사용할 Java 클래스 설정
session session="true/false" true 현재 JSP 페이지의 Session 여부 설정
buffer buffer="크기KB" 8KB 현재 JSP 페이지의 출력 버퍼 크기 설정
none으로 지정 시 출력 버퍼를 채우지 않고 웹 브라우저로 직접 전송
autoFlush autoFlush="true/false" true 자동으로 출력 버퍼를 비울지 설정
isThreadSafe isThreadSafe="true/false" true 현재 JSP 페이지의 멀티스레드 허용 여부를 설정
true : JSP에 수신된 여러 요청을 동시에 처리
false : JSP에 수신된 여러 요청을 순차적으로 처리
info info="설명" 현재 JSP 페이지에 대한 설명 기재
Servlet 인터페이스의 getServletInfo()를 사용함
errorPage errorPage="페이지주소" 현재 JSP 페이지에 오류 발생시 보여줄 페이지를 설정
isErrorPage isErrorPage="true/false" false 현재 JSP 페이지가 오류 페이지인지 여부를 설정
true로 설정 시 exception 변수 사용 가능
isELIgnored isELIgnored="true/false" false 현재 JSP 페이지에 표현언어(EL) 지원 여부 설정
isScriptEnabled isScriptEnabled="true/false" 현재 JSP 페이지의 스크립트 태그 사용 여부를 설정
<!-- jsp 파일을 만들면 가장 위에 뜨는 디렉티브 태그 -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

2. include 태그

<%@ include file="파일명" %>
<!-- include 메인 페이지 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="include01_header.jsp" %>
	<p>방문해주셔서 감사합니다.</p>
	<%@ include file="include01_footer.jsp" %>
</body>
</html>
<!-- include_header 페이지 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%!
	int pageCount = 0;
	public void addCount() {
		pageCount++;
	}
%>

<%
	addCount();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p>이 사이트 방문은 <%= pageCount %>번 째 입니다.</p>
	<p>날짜를 선택해봅시다. <input type="datetime-local"> </p>
</body>
</html>
<!-- include footer 페이지 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p> 사이트들 하단에 비슷하게 들어가는 내용을 "footer"로 지정할 수 있습니다. </p>
	<img alt="test" src="image/testimg.png" title="test">
</body>
</html>

include.png


3. taglib 태그

<%@ taglib prefix="태그식별자" uri="경로" %>
속성 설명
prefix uri에 설정한 사용자 정의 태그를 식별하기 위한 고유 이름. 즉 식별자
uri 사용자가 정의한 태그의 설정 정보를 가진 경로

스크립트 태그

태그 형식 설명
스트립트릿(scriptlet) <%...%> JSP 문서 안에 Java 코드를 작성하기 위해 사용함
선언문(declaration) <%!...%> Java 변수나 메소드를 선언할 때 사용
이 변수와 메소드는 JSP 페이지로부터 변환된 Servlet 클래스 멤버로 변환됨
표현문(expression) <%=...%> 변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력 시 사용
out.print()와 동일한 효과

1. 스크립트릿

<%
	<!-- Java 코드 내용 -->
%>

<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% // 스크립트 태그 - scriptlet (자바 태그 작성)
	int a = 2;
	int b = 4;
	out.println("2 * 4 = " + (a * b));
	
	Date today = new Date();	
	System.out.println("오늘은 " + today + " 입니다.");
	out.println("오늘은 " + today + " 입니다.");
%>
    
<!DOCTYPE html>
<html>
	<head>
	<meta charset="UTF-8">
	<title>Insert title here</title>
	</head>
<body>

</body>
</html>

scriptlet 1.png
scriptlet 2.png


2. 선언문

<%!
	<!-- 변수 및 메소드 선언 -->
%>
<%@page import="javax.swing.JFrame"%>
<%@page import="javax.swing.JButton"%>
<%@page import="javax.swing.JPanel"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
  
<%! // 스크립트 태그 - 선언문(변수, 메소드 정의) 
	int data = 50;
	int sum(int a, int b) {
		return a + b;
	}
	
	JFrame f = new JFrame();
	JButton button = new JButton("테스트버튼");
	
%>

<%
	out.println("Value of the variable is : " + data + "<br>");
	out.println("2 + 3 = " + sum(2,3));
	
	// 객체를 호출해서 메소드를 실행할 때는 스크립트릿에서 수행
	f.add(button);
	f.setBounds(100, 100, 100, 100);
	f.setVisible(true);
	f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
%>


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

declare.png


3. 표현문

<%=
	<!-- 출력할 내용 -->
%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%
	int num = 10;
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p> 현재 시각 : <%= new Date() %> </p>
	<p> 표현문으로 바로 출력 내용을 작성할 수 있다. </p>
	<p> 스크립트릿에 선언된 변수 "num"은 <%= num %> 이다. </p>
</body>
</html>

expression.png


액션 태그

<jsp:태그명 태그내용 />
태그 형식 설명
forward <jsp:forward ../> 다른 페이지로의 이동과 같은 페이지 흐름 제어
include <jsp:include ../> 외부 페이지의 내용을 포함하거나 모듈화
useBean <jsp:useBean ../> JSP 페이지에 javaBean 설정
setProperty <jsp:setProperty ../> javaBeans의 property 값 설정
getProperty <jsp:getProperty ../> javaBeans의 property 값을 가져옴
param <jsp:param ../> jsp:forward, jsp:include, jsp:plugin 태그에 parameter 추가
plugin <jsp:plugin ../> 웹 브라우저에 Java applet 실행
element <jsp:element ../> 동적 XML 요서 설정
attribute <jsp:attribute ../> 동적으로 정의된 XML 요소의 몸체(body)를 설정
body <jsp:body ../> 동적으로 정의된 XML 요소의 몸체를 설정. 액션 attribute가 jsp:attribute에 의해 정의되었을 때만 사용
text <jsp:text ../> JSP 페이지 및 문서에서 템플릿 텍스트 작성

1. forward 태그

<jsp:forward page="페이지이름" />
항목 forward redirect
동작 서버 내부에서 이동 클라이언트에게 재요청
주소 URL이 변경되지 않음 URL이 변경됨
요청/응답 객체 그대로 전달 새 요청으로 처리
속도 빠름 상대적으로 느림
사용 내부 처리의 흐름을 유지할 때 외부 페이지 이동
새 요청이 필요할 때
<!-- forward.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
	현재 페이지의 내용이 보일까요
	<img src="image/testimg.png" title="test">
	<jsp:forward page="forward_date.jps"/>
</body>
</html>
<!-- forward_date.jsp -->
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
	현재 시각 :  <%= (new Date()).toLocaleString() %>
</body>
</html>

forward.png


2. include 태그

<jsp:include page="파일명" flush="true/false" />
구분 forward 액션 태그 include 액션 태그
제어 외부 파일 실행 후 외부 파일로 제어를 이동 외부 파일 실행 후 현재 JSP 페이지로 제어를 반환
구분 include 액션 태그 include 디렉티브 태그
처리 요청 시 자원 포함 번역 시 자원 포함
기능 별도의 파일로 요청 처리 흐름을 이동시킴 현재 페이지에 삽입
데이터 전달 방법 request 기본 내장 객체, param 액션 태그를 이용하여 전달 페이지 내의 변수를 선언한 후 변수에 값을 저장
용도 화면 레이아웃의 일부분을 모듈화할 때 사용 여러 JSP 페이지에서 공통으로 사용되는 코드나 문장을 포함하는 경우에 사용
사용처 동적 페이지에 사용 정적 페이지에 사용
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	현재 내용이 페이지에 보일까요
	<img src="image/testimg.png" title="test">
	<jsp:include page="include_date.jsp" flush="false"/>
	
	<p style="color:red;"> 이 문장이 보일까요 </p>
	
</body>
</html>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p> 현재 시각 : <%=(new Date()).toLocaleString() %> </p>
</body>
</html>

include action.png